// number  数值 整数和小数
// String 字符串  （字符） "" ''
// bool true/false
// null 没有
// undefined 
// symbol es6

var a=null;
console.log(typeof a)

// object:正则、数组 字面量（json对象）
// funvction 

// json xml:数据传输
// 序列化 反序列化
// JSON.stringify()
// JSON.parse()

var stu =JSON.parse('{"id":1001, "name":"张"}')//反序列化
console.log(stu.id);

var a=10;
{
    a=20;
}
console.log(a);//a=20


//+ - * /
var a=1*"3";
console.log(a)
//var a=0.1+0.2  //二进制问题小数会造成精度问题  解决每一块都先变成整数
var a=(0.1*10+0.2*10)/10;
console.log(a==0.3)

//+ 一种是字符 还有一种链接字符串

// =赋值  ==只看值  ===类型和值完全相等
console.log(a=2);
console.log(a=="2");
console.log(a==="2");
console.log(a===2);

// parseInt 取整 
// parseFloat 直接转化对应小数
// isNaN 等于 not a number 是否取反

var a = parseInt("8a6.9"); //a后面不能转换的全都舍去
console.log(a);

var a = parseInt(86.6+0.5);//整数后全舍去
console.log(a);


function sum(a,b){//带参数带返回值
  return a+b;
}
var a=sum(3,4);
console.log(a);
function sum(){
    arguments//伪数组 可以当数组来用因为有下标
    return 1;
  }
  var a=sum(3,4,5);
  console.log(a);

  var arr=new Array();//在js里面Array()有没有都可以用
  //可以放任意类型
  arr[0]=0;
  arr[1]=1;
  arr[2]=2;
  console.log(arr);

  var arr=[1,"2",3];
  console.log(arr);

//   arr.shift() 删除第一个
//   arr.unshift() 在第一个前面加一个
//   arr.push() 在后面追加一个
//   arr.pop() 删除最后一个
//   都有返回值

var arr=[1,2,3,4,5];
// var res=arr.pop();
// console.log(arr,res);返回值
arr.splice(2,1,8,9); //第一个参数是下标 第二个是删除一个数  后面都是添加数据
console.log(arr);